﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Qiang.Data;

namespace Qiang.Styles
{
    public interface ILayer : IDisposable
    {

        #region 事件

        /// <summary>
        /// 数据内容改变事件
        /// </summary>
        event EventHandler DatasetContentChanged;

        /// <summary>
        /// 图层内容改变事件
        /// </summary>
        event EventHandler LayerContentChanged;

        #endregion
        

        #region 属性

        /// <summary>
        /// 数据集
        /// </summary>
        IDataset Dataset { get; set; }

        /// <summary>
        /// 范围
        /// </summary>
        IExtent Extent { get; }

        /// <summary>
        /// 选择的图形封装在这个字段内
        /// </summary>
        ISelection Selection { get; }

        /// <summary>
        /// 图层是事可选
        /// </summary>
        bool Selectable { get; set; }

        /// <summary>
        /// 图层是否可见
        /// </summary>
        bool Visible { get; set; }

       
        #endregion


        #region 方法

        void Select(IExtent ext);

        void Select(IExtent ext, SelectionMode selectMode);


        void ClearSelected();


        void RemoveSelected();

        #endregion

    }
}
